//
//  MKMainTabBar.swift
//  Weibo
//
//  Created by mac on 15/12/12.
//  Copyright © 2015年 MK. All rights reserved.
//

import UIKit

class MKMainTabBar: UITabBar {
    
    //实现init(frame）本类 系统默认支持 通过手码创建
    override init(frame: CGRect) {
        super.init(frame: frame)
        //添加(+号)
        addSubview(addBtn)
    }
    
    //只要是 通过xib／sb创建的tabbar 会走这个方法
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
        //MARK: - 重写父类的init(coder: aDecoder)方法后  这个类就不仅支持手码创建tabBar 也支持xib/sb创建
        //super.init(coder: aDecoder)
    }
    
    
    //懒加载 - 创建中间的 (＋号)
    lazy var addBtn: UIButton = UIButton(imageName: "tabbar_compose_icon_add", backImageName: "tabbar_compose_button")
    
    
}


extension MKMainTabBar {
    
    //FIXME: - 布局子视图frame的时候会调用 需要首先调用父类的layoutSubViews(view的方法)
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //修改tabBar的位置 + 空出中间
        let w = bounds.width / 5
        let h = bounds.height
        let rect = CGRectMake(0, 0, w, h)
        
        var i: CGFloat = 0
        for subView in subviews {
            //print(subView) //子类1.UITabBarButton 2.UIImageView 3._UITabBarBackgroundView
            //判断tabBar所有子类的类型是不是属于UITabBarButton(私有类 只能从字符串中获取类 再判断类型)
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
                subView.frame = CGRectOffset(rect, i * w , 0)
                
                //让中间的位置空出来
                i += (i == 1 ? 2 : 1)
            }
        }
        
        addBtn.frame = CGRectOffset(rect, 2 * w, 0)
        
        /*
        addBtn.frame = CGRectOffset(rect, 2 * w, -20)
        //把视图拿到最前端
        bringSubviewToFront(addBtn)
        */
    }
    
}


